import json

from base_service import BaseService

# 定义MemberService类，提供该服务下对应的3种方法
class MemberService(BaseService):
    def __init__(self):
        super().__init__()
        self.service_name = "MemberService"

    # 根据手机号查询会员信息
    def find_by_telephone(self, telephone):
        resp = self.dubbo_client.invoke(self.service_name, "findByTelephone", telephone)
        if resp == "null":
            return None
        else:
            # 对返回数据进行转换，json.loads()方法可将字符串形式的列表或字典转换回原格式
            return json.loads(resp)

    # 添加会员
    def add_member(self, member):
        # 按照dubbo调用要求，对对象（字典）类型参数需要增加key：class和value：完整的自定义类名
        member["class"] = "com.itheima.pojo.Member"
        resp = self.dubbo_client.invoke(self.service_name, "add", member)
        if resp == "null":
            return True
        else:
            return False

    # 根据日期统计会员数
    def find_member_count_by_months(self, months):
        resp = self.dubbo_client.invoke(self.service_name, "findMemberCountByMonths", months)
        if resp == "Failed":
            return None
        else:
            # 对返回数据进行转换，json.loads()方法可将字符串形式的列表或字典转换回原格式
            return json.loads(resp)
